package io.gbznt.modules.buss.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import io.gbznt.common.utils.Constant;
import io.gbznt.common.utils.ShiroUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;

import io.gbznt.common.utils.PageUtils;
import io.gbznt.common.utils.Query;

import io.gbznt.modules.buss.dao.BussPublicNoticeDao;
import io.gbznt.modules.buss.entity.BussPublicNoticeEntity;
import io.gbznt.modules.buss.service.BussPublicNoticeService;
import io.gbznt.modules.sys.entity.SysDeptEntity;
import io.gbznt.modules.sys.service.SysDeptService;

@Service("bussPublicNoticeService")
public class BussPublicNoticeServiceImpl extends ServiceImpl<BussPublicNoticeDao, BussPublicNoticeEntity>
		implements BussPublicNoticeService {
	@Autowired
	private SysDeptService sysDeptService;

	@Override
	public PageUtils queryPage(Map<String, Object> params) {
		String name = (String) params.get("name");
		// 是否上架
		String zt = (String) params.get("zt");

		IPage<BussPublicNoticeEntity> page = this.page(new Query<BussPublicNoticeEntity>().getPage(params),
				new QueryWrapper<BussPublicNoticeEntity>().like(StringUtils.isNotEmpty(name), "name", name)
						// 0是上架1是下架
						.eq(StringUtils.isNotEmpty(zt), "status", zt)
						// 个人数据权限控制
						.in(!Constant.SUPER_ADMIN.equals(ShiroUtils.getUserId()),
								"dept_id", sysDeptService.getPermissionDeptIdsArr(true,true))
						.orderByDesc("create_time")
		);

		for (BussPublicNoticeEntity bpne : page.getRecords()) {
			if (StringUtils.isNotBlank(bpne.getDeptId())) {
				SysDeptEntity dept = sysDeptService.getById(bpne.getDeptId());
				if (dept != null && StringUtils.isNotBlank(dept.getName())) {
					bpne.setDeptName(dept.getName());
				}
			}
		}
		return new PageUtils(page);
	}

}
